欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

什么是反向代理?反向代理服務(wù)器是位于后端服務(wù)器前面的中間連接點,它將客戶端請求路由到這些服務(wù)器,并確保沒有客戶端直接與后端通信。這與轉(zhuǎn)發(fā)代理不同,在轉(zhuǎn)發(fā)代理中,代理位于客戶端前面,并充當(dāng)客戶端和源服務(wù)器之間的中介。反向代理就像一個實際的端點,為您的系統(tǒng)提供額外的安全和控制層。

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

有哪些反向代理用例?

反向代理是基本的系統(tǒng)管理概念之一,可以幫助您提高系統(tǒng)的可伸縮性、性能、彈性和安全性。讓我們來看看一些最流行的反向代理用例。

  • 負(fù)載平衡。反向代理可以充當(dāng)負(fù)載平衡器,在不同服務(wù)器池之間分配傳入請求。它可能使用循環(huán)法、最少連接數(shù)、最少響應(yīng)時間或其他一些算法來路由傳入請求并使您的整個系統(tǒng)更快、更有彈性。如果服務(wù)器出現(xiàn)故障,您的反向代理負(fù)載平衡器會將流量重定向到其余的在線服務(wù)器。
  • 匿名。反向代理在將所有請求傳輸?shù)胶蠖朔?wù)器之前攔截所有請求。這樣你的后端服務(wù)器永遠(yuǎn)不需要透露他們的 IP 地址,只能通過反向代理訪問,這使得直接攻擊它們變得更加困難。
  • 交通清洗。反向代理服務(wù)器可能安裝了一些流量控制機(jī)制來過濾惡意或不需要的請求并防止它們到達(dá)您的后端服務(wù)。您可以使用防火墻、防病毒系統(tǒng)或任何其他應(yīng)用程序內(nèi)容檢查機(jī)制來加強(qiáng)系統(tǒng)安全性。
  • 緩存。反向代理服務(wù)器可以存儲經(jīng)常訪問的靜態(tài)或動態(tài) Web 內(nèi)容,以更快地提供服務(wù)并減輕后端服務(wù)器的負(fù)載。
  • SSL 加密。加密和解密 TLS 流量的計算量很大。反向代理可以負(fù)責(zé) SSL 加密,以減輕后端服務(wù)器的工作負(fù)擔(dān)。
  • 內(nèi)容壓縮。使用反向代理,您可以壓縮入站和出站數(shù)據(jù),使客戶端和后端服務(wù)器之間的通信更快。
  • A/B 測試。A/B 測試可以在瀏覽器、Web 應(yīng)用程序或后端層上執(zhí)行。使用反向代理,您可以實施后端層 A/B 測試并將傳入流量隨機(jī)分配到運行不同版本應(yīng)用程序的服務(wù)器。

先決條件

在我們開始之前,您需要:

  • 使用 sudo 權(quán)限訪問 Linux 服務(wù)器。我們將使用 Ubuntu 20.04,但您可以選擇不同的發(fā)行版。
  • 指向您的服務(wù)器 IP 地址的域名,用于配置 SSL 證書。您可以使用每臺服務(wù)器免費提供的自定義 Cherry Servers 子域名。

安裝阿帕奇

在本指南中,我們將使用 Apache Web 服務(wù)器來創(chuàng)建反向代理的工作概念。Apache 帶有一些方便的擴(kuò)展模塊,支持反向代理解決方案。
首先,連接到您的服務(wù)器并從 APT 存儲庫更新本地包索引:

sudo apt update

現(xiàn)在讓我們apache2從官方 Ubuntu 20.04 存儲庫安裝軟件包:

sudo apt install -y apache2

安裝完成后,您可以通過檢查其版本來驗證 Apache 是否已安裝:

apache2 -version

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

也可以apache2使用以下命令檢查狀態(tài):

sudo systemctl status apache2

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

如您所見,apache2 在您安裝后立即處于活動狀態(tài)并正在運行。您可以通過請求默認(rèn)的 Apache 索引頁面來執(zhí)行抽查以驗證它是否按預(yù)期工作。只需在網(wǎng)絡(luò)瀏覽器中輸入服務(wù)器的 IP 地址,然后按回車鍵:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

如果您不知道自己的 IP 地址,請使用以下命令獲取它:

hostname -I

此命令將顯示計算機(jī)上可用的所有網(wǎng)絡(luò)接口上的所有已配置 IP 地址,包括公共網(wǎng)絡(luò)接口的 IP 地址。

為反向代理啟用 Apache 模塊

要將反向代理與 Apache Web Server 一起使用,您需要啟用特定的 Apache 模塊以支持反向代理服務(wù)器所需的附加功能。我們的場景需要以下模塊:

  • mod_proxy:它是 Apache 的主要代理模塊,用于管理連接和重定向它們。它允許 Apache 充當(dāng)?shù)讓雍蠖朔?wù)器的網(wǎng)關(guān)。該模塊對于所有反向代理場景都是必需的。
  • mod_proxy_http:此模塊依賴于 mod_proxy 并且需要支持對代理服務(wù)器的 HTTP 和 HTTPS 請求。
  • mod_ssl:該模塊為 Apache HTTP 服務(wù)器提供 SSL v3 和 TLS v1.x 協(xié)議支持。

現(xiàn)在讓我們使用a2enmod命令啟用這些模塊:

sudo a2emod proxy && sudo a2enmod proxy_http && a2enmod ssl

每次啟用新的 Apache 模塊時,不要忘記重新啟動 apache2 服務(wù)器:

sudo systemctl restart apache2

您可以使用以下命令驗證這些模塊是否處于活動狀態(tài):

apache2ctl -M

配置 Apache 反向代理

現(xiàn)在是時候配置 Apache 反向代理以接受來自 Internet 的請求并將它們轉(zhuǎn)發(fā)到您選擇的資源。您可以將反向代理請求轉(zhuǎn)發(fā)到任何您想要的地方,包括其他服務(wù)器,但我們將使用本地網(wǎng)絡(luò)用于教育目的。

000-default.conf首先,讓我們使用以下命令禁用默認(rèn)的 Apache 虛擬主機(jī)配置文件:

sudo a2dissite 000-default.conf

現(xiàn)在使用以下配置文本cherry.conf在目錄中創(chuàng)建一個新的虛擬主機(jī)配置文件:/etc/apache2/sites-available

<VirtualHost *:80>
    ServerName site1.com
    ServerAlias www.site1.com 
    ServerAdmin postmaster@site1.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
    ProxyRequests Off

</VirtualHost>

<VirtualHost>我們使用包含 IP 地址和 Apache 為該虛擬主機(jī)接受的端口號的命令開始我們的配置文件。在這種情況下使用元字符*,因為所有 IP 地址都被接受,而端口號80代表默認(rèn)的 HTTP 端口。配置繼續(xù)以下項目:

  • ServerName:定義與服務(wù)器關(guān)聯(lián)的域名。/etc/hosts如果您想通過關(guān)聯(lián)的域名訪問您的服務(wù)器,您可以通過 DNS 在 Internet 上配置它或通過文件在本地設(shè)置它。
  • ServerAlias:允許您定義將被服務(wù)器接受的其他名稱。
  • ServerAdmin:服務(wù)器在返回給客戶端的錯誤消息中包含的聯(lián)系人電子郵件地址。
  • ErrorLog:設(shè)置 Apache 用來存儲它遇到的任何錯誤的文件的名稱。
  • CustomLog:設(shè)置 Apache 用于將客戶端請求記錄到服務(wù)器的文件的名稱。
  • ProxyPass:將遠(yuǎn)程服務(wù)器映射到本地服務(wù)器的空間。定義流量重定向的目標(biāo)地址。
  • ProxyPassReverse:代理服務(wù)器不僅可以接收請求,還可以將響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)回客戶端。命令用代理服務(wù)器的信息重寫后端服務(wù)器的ProxyPassReverse原始location和HTTP 響應(yīng)標(biāo)頭。這對于避免繞過反向代理并將后端服務(wù)器與 Internet 隔離至關(guān)重要。content-locationuri
  • ProxyRequests:防止 Apache HTTP 服務(wù)器被用作轉(zhuǎn)發(fā)代理并使其更安全。ProxyRequests使用時通常應(yīng)將該命令設(shè)置為關(guān)閉ProxyPass。

保存配置文件并使用以下命令啟用新的虛擬主機(jī):

sudo a2ensite cherry.conf

配置完成后,不要忘記重新啟動 apache2 以激活更改:

sudo systemctl restart apache2

配置 Flask 應(yīng)用程序

您的反向代理配置現(xiàn)已完成,但我們?nèi)匀蝗鄙僖粋€將在端口 8080 上偵聽的 Web 應(yīng)用程序,因為我們的ProxyPass指令將傳入請求轉(zhuǎn)發(fā)到此目的地。
為此,我們可以使用一個簡單的 Flask 應(yīng)用程序。讓我們先安裝 python3 和 pip 包管理器:

sudo apt install python3 python3-pip

安裝完成后,繼續(xù)通過pip安裝Flask:

pip3 install flask

現(xiàn)在我們準(zhǔn)備創(chuàng)建一個簡單的 Flask Web 應(yīng)用程序。讓我們稱之為app.py:

vim app.py

在下面的 Python 代碼中,我們導(dǎo)入 Flask 庫,實例化 Flask 應(yīng)用程序并在“/”路由上調(diào)用 index() 函數(shù):

from flask import Flask

app = Flask(__name__)

@app.route(“/”)
def index():
return “Apache reverse proxy is working!”

將 Python 腳本保存在您的工作目錄中,并將 FLASK_APP 環(huán)境變量設(shè)置為 app.py,以便 Flask 知道在哪里實例化您的 Web 應(yīng)用程序:

FLASK_APP=app.py

現(xiàn)在您已準(zhǔn)備好運行您的 Flask 應(yīng)用程序。讓我們通過將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出重定向到文件來作為后臺作業(yè)在端口 8080 上運行它/dev/null以保持我們的終端清潔:

flask run --port=8080 > /dev/null 2 > &1 &

現(xiàn)在打開瀏覽器并嘗試通過標(biāo)準(zhǔn) HTTP 80 端口連接到您的 IP 地址:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

您剛剛向 IP 地址上的端口 80 發(fā)送了一個 HTTP GET 請求,并且您的請求已被 Apache 反向代理轉(zhuǎn)發(fā)到端口 8080,您的 Flask 應(yīng)用程序在此處發(fā)回響應(yīng)。恭喜,您的 Apache 反向代理配置正在運行!

配置 SSL 證書

通常,您希望對您的應(yīng)用程序流量進(jìn)行 SSL 加密。您可以使用免費的 Let's Encrypt TLS 證書使用 Apache 反向代理配置 SSL/TLS 加密。
首先,安裝允許您自動頒發(fā)和安裝證書的 Certbot ACME 客戶端:

sudo apt install certbot

接下來,為 Certbot 安裝 Apache 插件以簡化安裝過程:

sudo apt install python3-certbot-apache

Let's Encrypt 不會為沒有域名的服務(wù)器頒發(fā) TLS 證書。要繼續(xù)配置證書,您需要從任何域名提供商處購買域名并將其指向您服務(wù)器的 IP 地址。或者,您可以使用自定義 DNS 名稱,該名稱可以在 Cherry Servers 為每臺服務(wù)器設(shè)置。

為此,請轉(zhuǎn)到您的客戶端,訪問服務(wù)器的網(wǎng)絡(luò)選項,然后按管理 IP 上的“編輯地址”按鈕:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

您現(xiàn)在可以輸入自定義 DNS 名稱并按更新:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

這樣做之后,子域名reverse-proxy.cloud.cherryservers.net將可用于您的服務(wù)器。您現(xiàn)在可以使用此子域名而不是 IP 地址來查詢它:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

您還應(yīng)該將此子域名添加到您的 cherry.conf 配置文件中:

<VirtualHost *:80>
	ServerName cherry.com
	ServerAlias www.cherry.com reverse-proxy.cloud.cherryservers.net
	[…]
</VirtualHost>

現(xiàn)在您可以使用以下命令開始 TLS 證書配置:

sudo certbot --apache

首先,您將被要求輸入您將接收續(xù)訂和安全通知的電子郵件地址:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

接下來,您需要閱讀并同意 Let's Encrypt 服務(wù)條款:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

決定您是否愿意接收來自 Let's Encrypt 的新聞和產(chǎn)品更新:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

Certbot 將自動從您的 Apache 虛擬主機(jī)配置文件中讀取 ServerName 和 ServerAlias 變量。選擇要用于 HTTPS 查詢的正確域名并繼續(xù)安裝:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

Certbot 現(xiàn)在將為 SSL 連接創(chuàng)建一個新的 Apache 虛擬主機(jī)并為您生成證書。
最后,系統(tǒng)會詢問您是否要自動將所有 HTTP 流量重定向到 HTTPS。為了簡單起見,選擇No redirect:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

就是這樣——您現(xiàn)在擁有一個功能齊全的 Apache 反向代理,帶有 SSL 加密!您現(xiàn)在可以通過安全的 HTTPS 連接訪問您的 Web 代理服務(wù)器:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

?專業(yè)提示:您可以通過在一行中使用 Certbot 和一些強(qiáng)制參數(shù)來進(jìn)一步簡化 TLS 證書安裝:

sudo certbot --apache --non-interactive --agree-tos -m mantas.levinas@cherryservers.com -d reverse-proxy.cloud.cherryservers.net

如果您想更深入地了解 Certbot 做了什么,請隨時查看新創(chuàng)建的 Apache 虛擬主機(jī):

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName cherry.com
    ServerAlias www.cherry.com reverse-proxy.cloud.cherryservers.net
    ServerAdmin mantas.levinas@cherryserers.com
    ErrorLog ${APACHE_LOG_DIR}/erro.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
    ProxyRequests Off

	SSLCertificateFile /etc/letsencrypt/live/reverse-proxy.cloud.cherryservers.net/fullchain.pem
	SSLCertificateKeyFile /etc/letsencrypt/live/reverse-proxy.cloud.cherryservers.net/privkey.pem
	Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

您可以看到 Apache 檢查您是否有可用的 mod_ssl,如果有,它會使用給定的虛擬主機(jī)配置來接受通常為 HTTPS 流量保留的端口 443 上的所有 IP 地址。

虛擬主機(jī)幾乎是我們原始配置的副本,cherry.conf但多了三行。它包括對 SSL 證書文件的引用并導(dǎo)入 SSL 配置文件以使用一些必需的 SSL 設(shè)置來補(bǔ)充您的虛擬主機(jī)配置。

結(jié)論

在本文中,我們了解了什么是反向代理及其使用方法。我們還建立了 Apache 反向代理的工作概念,使用 SSL 加密來提供額外的安全層。您可以使用 Apache Web Server 構(gòu)建更多的反向代理用例,所以請不要猶豫,在Apache 官方文檔頁面上了解更多關(guān)于這個基本系統(tǒng)工程概念的信息。

文章鏈接: http://www.qzkangyuan.com/13376.html

文章標(biāo)題:如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

文章版權(quán):夢飛科技所發(fā)布的內(nèi)容,部分為原創(chuàng)文章,轉(zhuǎn)載請注明來源,網(wǎng)絡(luò)轉(zhuǎn)載文章如有侵權(quán)請聯(lián)系我們!

聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個人或組織,在未征得本站同意時,禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
IDC云庫

如何選擇和注冊域名

2022-11-28 14:25:32

IDC云庫

如何在Ubuntu 20.04上安裝Linux、Apache、MySQL和PHP(LAMP堆棧)?

2022-11-28 16:12:38

0 條回復(fù) A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 镇康县| 东莞市| 洛隆县| 洛扎县| 扎赉特旗| 琼结县| 中牟县| 县级市| 南漳县| 静海县| 镇坪县| 彭州市| 正蓝旗| 县级市| 五峰| 通榆县| 周口市| 油尖旺区| 湘阴县| 峨山| 伊春市| 安陆市| 维西| 石棉县| 视频| 敦化市| 夏邑县| 三亚市| 定西市| 志丹县| 宾川县| 崇左市| 仪陇县| 湖口县| 通河县| 新绛县| 织金县| 台前县| 灵武市| 烟台市| 剑川县|